package cn.iocoder.yudao.module.member.framework;

import cn.iocoder.yudao.module.api.shop.info.ShopInfoApi;
import cn.iocoder.yudao.module.api.shop.staff.ShopStaffApi;
import cn.iocoder.yudao.module.member.agency.service.AppAgencyUserService;
import cn.iocoder.yudao.module.member.alliance.service.AppCloudAllianceUserService;
import cn.iocoder.yudao.module.member.bonus.service.app.AppBonusUserService;
import cn.iocoder.yudao.module.member.user.service.SecurityMemberService;
import cn.iocoder.yudao.module.member.user.service.SecurityMemberServiceImpl;
import cn.iocoder.yudao.module.member.vip.service.AppVipUserService;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  这里是文件说明
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/01/14
 * @see cn.iocoder.yudao.framework.security.config.YudaoSecurityAutoConfiguration
 */
@AutoConfiguration
@ConditionalOnClass(SecurityMemberServiceImpl.class)
public class SecurityAutoConfiguration {

    /**
     * @see cn.iocoder.yudao.framework.security.config.YudaoSecurityAutoConfiguration#securityFrameworkService
     */
    @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
    @Bean({"mm"})
    public SecurityMemberService securityMemberService(AppVipUserService appVipUserService, AppAgencyUserService appAgencyUserService, AppCloudAllianceUserService appCloudAllianceUserService, AppBonusUserService appBonusUserService, ShopInfoApi shopInfoApi, ShopStaffApi shopStaffApi) {
        return new SecurityMemberServiceImpl(appVipUserService, appAgencyUserService, appCloudAllianceUserService, appBonusUserService, shopInfoApi, shopStaffApi);
    }

}
